//package com.example.egarticle.base.exception;
//
//import com.example._03vehicle.base.response.JsonResult;
//import com.example._03vehicle.base.response.StatusCode;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.web.bind.MethodArgumentNotValidException;
//import org.springframework.web.bind.annotation.ExceptionHandler;
//import org.springframework.web.bind.annotation.RestControllerAdvice;
//
//import javax.validation.ConstraintViolationException;
//
////该注解标识为全局异常处理器，所有的异常都会经过该类进行处理
////当出现异常，会先检查是否有定义的全局异常的处理器，如果有，则调用对应的处理器进行处理，如果没有，则调用默认的处理器进行处理
//@Slf4j
//@RestControllerAdvice //@ControllerAdvice + @ResponseBody
//public class GlobalExceptionHandler {
//    //该注解标识为全局异常处理器，所有的相同异常都在该方法内进行处理
//
//    @ExceptionHandler
//    public JsonResult handleException(IllegalArgumentException e) {
//        String data=e.getMessage();
//        log.error("参数错误：{}",data);
//        return JsonResult.fail_nodata(data);
//    }
//    @ExceptionHandler
//    public JsonResult handleException(RuntimeException e) {
//        String data=e.getMessage();
//        log.error("运行错误：{}",data);
//        return JsonResult.fail_nodata(data);
//    }
//    //捕获请求体传参非空错误
//    @ExceptionHandler
//    public JsonResult handleException(MethodArgumentNotValidException e) {
//        //String data=e.getMessage();
//        String data=e.getBindingResult().getFieldError().getDefaultMessage();
//        log.error("非空错误：{}",data);
//        return new JsonResult(StatusCode.VALIDATED_ERRROR,data);
//    }
//    //捕获路径传参格式错误
//    @ExceptionHandler
//    public JsonResult handleException(ConstraintViolationException e) {
//        String data=e.getMessage().split(":")[1].trim();
//        log.error("路径传参格式错误：{}",data);
//        return new JsonResult(StatusCode.VALIDATED_ERRROR,data);
//    }
//    //捕获所有未知错误
//    @ExceptionHandler
//    public JsonResult handleException(Throwable e) {
//        String data=e.getMessage();
//        log.error("未知错误：{}",data);
//        return new JsonResult(StatusCode.THROW_EXCEPTION,data);
//    }
//}
